for (i = 0; i < x11_screen->nvisuals; i++)
g_object_unref (x11_screen->visuals[i]);
g_free (x11_screen->visuals);
- g_hash_table_destroy (x11_screen->visual_hash);
g_free (x11_screen->window_manager_name);
GdkVisualClass visual_class;
};
-static void gdk_visual_add (GdkVisual *visual);
-static guint gdk_visual_hash (Visual *key);
-static gboolean gdk_visual_equal (Visual *a,
- Visual *b);
-
-
G_DEFINE_TYPE (GdkX11Visual, gdk_x11_visual, GDK_TYPE_VISUAL)
static void
}
}
- for (i = 0; i < nvisuals; i++)
- gdk_visual_add (visuals[i]);
-
if (x11_screen->navailable_types == 0)
g_error ("unable to find a usable visual type");
return NULL;
}
-static void
-gdk_visual_add (GdkVisual *visual)
-{
- GdkX11Screen *x11_screen = GDK_X11_SCREEN (visual->screen);
-
- if (!x11_screen->visual_hash)
- x11_screen->visual_hash = g_hash_table_new ((GHashFunc) gdk_visual_hash,
- (GEqualFunc) gdk_visual_equal);
-
- g_hash_table_insert (x11_screen->visual_hash, GDK_X11_VISUAL (visual)->xvisual, visual);
-}
-
-static guint
-gdk_visual_hash (Visual *key)
-{
- return key->visualid;
-}
-
-static gboolean
-gdk_visual_equal (Visual *a,
- Visual *b)
-{
- return (a->visualid == b->visualid);
-}
-
/**
* _gdk_visual_get_x11_colormap:
* @visual: the visual to get the colormap from